home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / AGAShow.AMOS / AGAShow.amosSourceCode
Encoding:
AMOS Source Code  |  1995-09-17  |  3.2 KB  |  126 lines

  1. SHOAGAPIC["Test",320,256,0]
  2. 'SHOAGAPIC["dh1:Test2",640,512,$8004]
  3. End 
  4. Procedure SHOAGAPIC[FIL$,WX,WY,MDE]
  5.    Extension_8_0456 FIL$+".raw",-8
  6.    Extension_8_0456 FIL$+".col",10
  7.   Reserve As Work 9,1024+32
  8.   DY=$28 : DX=$80
  9.   BITMAP=Start(8)
  10.   BSIZE=(WX/8)*WY
  11.   CMAP=Start(9)
  12.   Copper Off 
  13.   Cop Reset 
  14.   Cop Move $100,$200
  15.   Cop Wait $FE,$FF
  16.   Cop Swap 
  17.   Cop Reset 
  18.   If MDE and $4
  19.     Cop Movel $108, Extension_8_0946(WX/8)+WX/8 : Rem    BPL1MOD BPL2MOD 
  20.   Else 
  21.     Cop Movel $108,0
  22.   End If 
  23.   Cop Movel $102,0 : Rem    BPLCON1 BPLCON2   
  24.   Cop Move $8E,DX+1+DY*$100 : Rem  DIWSTRT   
  25.   If MDE and $8000
  26.     If MDE and 4
  27.       Cop Move $90,((DX+WX/2+1) and $FF)+((DY+WY/2) and $FF)*$100 : Rem  DIWSTOP 
  28.     Else 
  29.       Cop Move $90,((DX+WX/2+1) and $FF)+((DY+WY) and $FF)*$100 : Rem  DIWSTOP 
  30.     End If 
  31.   Else 
  32.     If MDE and 4
  33.       Cop Move $90,((DX+WX+1) and $FF)+((DY+WY/2) and $FF)*$100 : Rem  DIWSTOP 
  34.     Else 
  35.       Cop Move $90,((DX+WX+1) and $FF)+((DY+WY) and $FF)*$100 : Rem  DIWSTOP 
  36.     End If 
  37.   End If 
  38.   Cop Move $92,$38 : Rem    DDFSTRT 
  39.   Cop Move $94,$D0 : Rem    DFFSTOP 
  40.   For A=0 To 7
  41.     Cop Movel $120+A*4,Start(9)+1024
  42.   Next 
  43.   ' High-Colour Bits 
  44.   CMAPADR= Extension_8_11E0 
  45.   For A=0 To 7
  46.     Cop Move $106,A*$2000
  47.     For B=0 To 31
  48.       Cop Move $180+B*2,0 : RemRrggbb To Rgb(Leek(CMAP+B*4+A*128)) 
  49.     Next 
  50.   Next 
  51.   ' Low-Colour Bits.     
  52.   For A=0 To 7
  53.     Cop Move $106,A*$2000+$200
  54.     For B=0 To 31
  55.       Cop Move $180+B*2,0 : RemRrggbb To Rgb((Leek(CMAP+B*4+A*128) and $F0F0F)*16) 
  56.     Next 
  57.   Next 
  58.   Cop Move $106,0
  59.   ' Bitplanepointer
  60.   BPP= Extension_8_11E0 
  61.   For A=0 To 7
  62.     Cop Movel $E0+A*4,BITMAP+BSIZE*A
  63.   Next 
  64.   ' FMODE! 
  65.   If MDE and $8000
  66.     Cop Move $1FC,1
  67.   Else 
  68.     Cop Move $1FC,0
  69.   End If 
  70.   ' Turn Screen on.
  71.   Cop Move $100,$210+(MDE and $8804)
  72. '  Cop Move $100,$C204 
  73.   ' DMA on.
  74.   Cop Move $96,$8180 : Rem  DMACON  
  75.   Cop Swap 
  76.   Break Off 
  77.   STE=0 : TIMOUT=0
  78.   Repeat 
  79.     If STE<255
  80.       AGAFADECMAP2[CMAP,Start(10)]
  81.       Inc STE
  82.       WRITEAGACMAP[CMAP,CMAPADR]
  83.     Else 
  84.       Inc TIMOUT
  85.     End If 
  86.     AD=BPP+2
  87.     Wait Vbl 
  88.     If MDE and $4
  89.        Extension_8_0346 50
  90.       LACE=(Deek($DFF004) and $8000)<>0
  91.       For A=0 To 7
  92.         Doke AD, Extension_8_0946(BITMAP+BSIZE*A-(WX/8)*LACE) : Add AD,4
  93.         Doke AD,BITMAP+BSIZE*A-(WX/8)*LACE : Add AD,4
  94.       Next 
  95.     End If 
  96.     MK=Mouse Key
  97.   Until MK or TIMOUT>600
  98.   For AA=0 To STE
  99.     AGAFADECMAP[CMAP]
  100.     WRITEAGACMAP[CMAP,CMAPADR]
  101.     AD=BPP+2
  102.     Wait Vbl 
  103.     If MDE and $4
  104.        Extension_8_0346 50
  105.       LACE=(Deek($DFF004) and $8000)<>0
  106.       For A=0 To 7
  107.         Doke AD, Extension_8_0946(BITMAP+BSIZE*A-(WX/8)*LACE) : Add AD,4
  108.         Doke AD,BITMAP+BSIZE*A-(WX/8)*LACE : Add AD,4
  109.       Next 
  110.     End If 
  111.   Next 
  112.   Copper On 
  113.   Break On 
  114.   Sprite Off : Hide On 
  115.   For A=0 To 4 : Doke $DFF1FC,0 : Wait Vbl : View : Next 
  116.   Erase 8 : Erase 9 : Erase 10 : Sprite Off 
  117. End Proc
  118. Procedure AGAFADECMAP2[CMPADR,TARGET]
  119.    ' COMPILED PROCEDURE -- can't convert this to AMOS code
  120. End Proc
  121. Procedure AGAFADECMAP[CMPADR]
  122.    ' COMPILED PROCEDURE -- can't convert this to AMOS code
  123. End Proc
  124. Procedure WRITEAGACMAP[CMPADR,COPADR]
  125.    ' COMPILED PROCEDURE -- can't convert this to AMOS code
  126. End Proc